package com.fbinggun.fbinggunutil.price;


import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;

/**
 * 价格接口
 */
public interface IPrice {
    public  PriceType getType();

    /**
     * 判断玩家是否满足条件
     * @param player 玩家
     * @return
     */
    public boolean has(Player player);

    /**
     * 扣除玩家价格值
     * @param player
     * @return
     */
    public boolean take(Player player);

    /**
     * 配置文件
     * Price:
     *  #价格类型 Money Item Points
     *  PriceType: Money
     *  #价格
     *  Price: 100
     *  #如果是物品的话Count 为物品数量
     *  Count: 1
     *
     * @param config 配置文件
     * @return
     */
    public static IPrice loadPrice(ConfigurationSection config) {
        if(config==null){
            return null;
        }
        String priceType =config.getString("PriceType");
        IPrice price=null;
        if(priceType.equalsIgnoreCase("Money")){
            System.out.println("价格配置文件加载"+config);
            price=new MoneyPrice(config);
        }else if(priceType.equalsIgnoreCase("Item")){
            price=new ItemPrice(config);
        }else if(priceType.equalsIgnoreCase("Points")){
           price=new PointsPrice(config);
        }
        return price;
    }

}
enum PriceType{
    Money,Points,Item
}